home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / VBE20SRC.ZIP / TEST2.C < prev    next >
C/C++ Source or Header  |  1997-03-24  |  2KB  |  83 lines

  1. //▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  2. // File        : TEST2.C
  3. // Description : Vesa Bios Extention 2.0 test2 file
  4. // Notes       : Brought to you by Vertigo. If you use this, or have
  5. //               learned from this, send us an email and/or Greet us
  6. //               In your demo =).
  7. //
  8. //▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  9.  
  10. #include "STDIO.H"
  11. #include "STDLIB.H"
  12. #include "CONIO.H"
  13. #include "VGOVBE20.H"
  14.  
  15. VBESURFACE * myScreen;
  16.  
  17. //░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  18. // Main entry point
  19. //░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  20. void main(void)
  21. {
  22.   VBEINFO *vbeInfo;
  23.   unsigned short * lfb;
  24.   int i,scanWidth;
  25.   long x,y;
  26.  
  27.   // Detect the VBE bios
  28.  
  29.   if( (vbeInfo = vbeDetect()) == NULL )
  30.   {
  31.     printf("Can't find VESA bios extentions\n");
  32.     exit(0);
  33.   }
  34.  
  35.   // Check for VBE 2.0
  36.  
  37.   if( vbeInfo->VbeVersion < 0x200 )
  38.   {
  39.     printf("VESA bios extention 2.0 or better needed\n");
  40.     exit(0);
  41.   }
  42.  
  43.   // Try a nice simple resolution,
  44.   // we won't scan the mode list as this
  45.   // is just a simple test
  46.  
  47.   myScreen = vbeOpen(320,240,16);
  48.  
  49.   if(myScreen == NULL)
  50.   {
  51.     printf("Could not set 320x240 16bpp mode\n");
  52.     exit(0);
  53.   }
  54.  
  55.   // Randomly fill the whole of gfx mem with dots
  56.  
  57.   lfb = (unsigned short *)myScreen->lfb;
  58.  
  59.   for(i=0;i< (vbeInfo->TotalMemory*64000)/2 ;i++)
  60.     ((short *)lfb)[i] = i&31;
  61.  
  62.  
  63.   // Do a little scroll test
  64.  
  65.   x=0,y=0;
  66.   scanWidth = (vbeInfo->TotalMemory*64000) / (200*2);
  67.  
  68.   vbeSetScanWidth( scanWidth );
  69.  
  70.   while( !kbhit() )
  71.   {
  72.     vbeSetDisplayStart(x,y);
  73.     x++;
  74.     vbeVr(); //wait for Vretrace so this doesnt ZOOOOOM
  75.     if( x >= scanWidth ) x=0;
  76.   }
  77.  
  78.  
  79.   vbeClose( myScreen ); 
  80.   printf("Nice crappy little example of using VESA 2.0. Enjoy! \n");
  81. }
  82.  
  83.